4 DEFINT A-W,Y-Z /DEFINE ALL VARIABLES AS INTEGERS
35 DIM K$(80) / COUNT FOR INPUT SUBROUTINE
40 DIM FLGV(2000) / DIMENSION FLAG
70 CH = 8 / BACKSPACE CHARACTER
75 PRINT FRE(0) /PRINT FREE MEMORY
80 GOSUB 50000 / PRINT PROGRAM NAME AND COPYRIGHT NOTICE
100 GOSUB 52000 / PROMPT TO PUT CARD FILE IN DISK DRIVE
200 GOTO 40000 / INITIAL MENU
500 REM ******* CLS
510 CLS / CLEAR SCREEN
520 RETURN
7000 REM FIND LENGTH OF WORD /this subroutine determines the length of word less end spaces. Note LEN(A$) will not work as it counts end blanks
7010 MAX = 0 /INITIALIZE MAX
7020 MAX = MAX + 1 /INCREMENT MAXIMUM
7030 IF MID$(WD$,MAX,1) = " " THEN RETURN /IF A SPACE THEN RETURN
7040 GOTO 7020 /REPEAT UNTILL END SPACE IS FOUND
8000 REM ***** FILE NAME ACCEPLABLE TEST ************
8010 TEST = 1 /INITIALIZE TEST TO 1
8100 FOR Q = 1 TO LEN(A$) / FOR ALL CHARACTERS IN THE FILE NAME
8110 K$(Q) = MID$(A$,Q,1) / GET THE Q'th character
8120 C = ASC(K$(Q)) / ASCII VALUE OF THE Q'th character
8130 IF C < 48 OR C > 122 THEN TEST = 4 / IF NOT A LETTER OR NUMBER THEN FILE NAME IS NOT ACCEPTABLE
8140 IF Q = 1 AND ( C < 65 OR C > 122 ) THEN TEST = 4 /IF FIRST CHARACTER IS NOT A LETTER THE NAME IS NOT ACCEPTABLE
8150 NEXT Q / NEXT CHARACTER
8190 RETURN
9000 REM OPEN DATA FILE
9010 OPEN "R",#2,"CARDS",128 / OPEN CARD FILE AS FILE 2 RANDOM ACCESS LENGTH 128 CHARACTERS
9020 FIELD #2,28 AS WD$,50 AS DF1$,50 AS DF2$ /FIELD THE FILE 28 CHARACTERS AS WD$ ( WORD ), 50 CHARACTERS AS DEFINITION 1, 50 CHARACTERS AS DEFINITION 2
9030 MRN = LOF(2)/128 /MAXIMUM RECORD NUMBER
9050 RETURN
9100 REM open and read flag file
9105 K = 1 /INITIALIZE COUNT TO ONE
9110 ON ERROR GOTO 9500 /IF FILE NOT FOUND GOTO
9120 OPEN "I",#3,"FLAG" /OPEN FLAG FILE AS A SEQUENTIAL ACCESS FILE NUMBER 3
9125 ON ERROR GOTO 0 / TURN ON ERROR OFF
9127 INPUT #3,RN,MI / INPUT RECORD NUMBER, MISS NUMBER
9130 IF EOF(3) THEN 9200 / IF END OF FILE
9140 INPUT #3, FLGV(K) / INPUT FLAG VALUE
9150 K = K + 1 /INCREMENT COUNT
9160 GOTO 9130 / REPEAT UNTILL END OF FILE
9200 CLOSE #3 /CLOSE FILE
9205 GOSUB 9400 / COUNT FREQUENCY OF MISSES
9210 RETURN
9300 REM open and read flag file
9305 K = 1 / INITIALIZE COUNT
9310 ON ERROR GOTO 9500 /IF FILE NOT FOUND THEN 9500
9320 OPEN "I",#3,"SFLAG" /OPEN SFLAG AS SEQUENTIAL ACCESS FILE 3
9325 ON ERROR GOTO 0 / TURN ON ERROR OFF
9327 INPUT #3,RN,MI / INPUT RECORD NUMBER, NUMBER OF MISSES
9330 IF EOF(3) THEN 9200 / IF END OF FILE THEN 9200
9340 INPUT #3, FLGV(K) / INPUT FLAG
9350 K = K + 1 / INCREMENT COUNT
9360 GOTO 9330 / REPEAT UNTILL END OF FILE
9400 REM cont number of times missed
9405 GOSUB 9470 / SET COUNT MISSES TO 0
9410 FOR T = 1 TO MRN / FOR ALL RECORD NUMBERS
9420 R = FLGV(T) / FLAG VALUE, FLAG VALUE IS THE NUMBER OF TIMES YOU MISSED